package Router

import (
	"CrudProject/Model"
	_ "database/sql"
	_ "fmt"
	"github.com/gin-gonic/gin"
	_ "github.com/go-sql-driver/mysql"
	"github.com/jinzhu/gorm"
	_ "github.com/jinzhu/gorm/dialects/mysql"
	"net/http"
)

var (
	db  *gorm.DB
	err error
)

func Router() {
	// 链接 mysql
	db, err = gorm.Open("mysql", "root:ts123456@tcp(127.0.0.1:3306)/gorm?charset=utf8&parseTime=True&loc=Local")
	if err != nil {
		panic(err)
	} else {
		// 全局禁用表名复数
		db.SingularTable(true) // 如果设置为true,`User`的默认表名为`user`,使用`TableName`设置的表名不受影响

		// 一般不会直接用CreateTable创建表
		// 检查模型`User`表是否存在，否则为模型`User`创建表
		if !db.HasTable(&Model.User{}) {
			if err := db.Set("gorm:table_options", "ENGINE=InnoDB").AutoMigrate(&Model.User{}).Error; err != nil {
				panic(err)
			}
		}
	}

	// 引入路由
	Router()
}

//每个路由都对应一个具体的函数操作,从而实现了对user的增,删,改,查操作
func InitPage(c *gin.Context) {
	c.JSON(http.StatusOK, gin.H{
		"message": "OK!",
	})
}
